package io.FileStream;

import java.io.*;

public class FileReaderDemo {
    public static void main(String[] args) throws IOException {
        /*
        puclic void close()                     关闭呲溜并释放于此流相关的任何系统资源
        puclic int read()                       从输入流中读取一个字符
        puclic int read(char[] cbuf)            从输入六中读取一些字符，并将它们存储到字符数组cbuf中

        public FileReaderStream(File file)       创建一个新的FileReader，给定要读取的File对象
        public FileReaderStream(String name)     创建一个新的FileReader，给定要读取的文件名称

         */
//        使用文件名称创建流对象，表示从什么地方读取数据
            FileInputStream fis=new FileInputStream("b.txt");

//            读取数据
        byte[] b=new byte[2];//表示一次读取两个字节数据
//        一次读多少个字节数据，具体读多少，戈恩数组的长度有关
//        返回值：本次读取到了多少个字节数据
        int len=fis.read(b);
        System.out.println(len);// 2
//      令其变成一个字符串并打印字符串
        String str=new String(b);
        System.out.println(str);//ac
//        重复以上操作会按照顺序向后读取，但若最后读取的只有一个数据 例如只读了e，那么会返回ed
//        当在此读取时，还是会显示ed，返回值为-1


//        循环读取：
//        定义变量，保存有效字符的个数
        FileReader fr=new FileReader("b.txt");
        int c;
//        定义字符数组，作为装字符数据的容器
        char[] cbuf=new char[1024];//表示一次读取两个字节
        while ((c=fr.read(cbuf))!=-1){
            String s = new String(cbuf);
            System.out.println(s);
        }

/*
//        一次读取一个数据
            int c;
            while ((c=fis.read())!=-1){
                System.out.print((char)c);
            }
*/
        fis.close();

    }
}
